██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
QuickDraw
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbwQuickDraw è il mwcamotore grafico bidimensionale del mwcqsistema operativo mwcgmacOS prodotto da mwcwApple. È stato progettato e realizzato da mwdaAndy Hertzfeld e mwdqBill Atkinson. Con l'arrivo del mwdgmacOS Apple sviluppò un nuovo motore grafico chiamato mwdwQuartz. QuickDraw è incluso in Mac OS X per poter mantenere la compatibilità con le applicazioni precedenti, l'emulatore mweaClassic necessita del supporto di QuickDraw per funzionare.
Contents
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Principi di QuickDraw
QuickDraw venne progettato dal team di sviluppo come un'estensione dell'originale motore grafico integrato nel mwewsistema operativo del computer mwfaLisa. È strutturato come un insieme di mwfqalgoritmi e di mwfgstrutture dati unite per formare un insieme di librerie deposte alla gestione dell'mwfwinterfaccia grafica. Questo metodo di costruzione del motore grafico è in netta opposizione rispetto alle moderne tecniche di mwgaprogrammazione orientata agli oggetti. Ma allora la programmazione a oggetti non era il paradigma imperante e quel tipo di libreria ben si adattava al linguaggio mwgqPascal, linguaggio che Apple ha utilizzato per sviluppare buona parte dell'interfaccia grafica.
QuickDraw definisce una struttura dati chiave chiamata "port" o "GrafPort". Questa struttura definisce l'area dove si può disegnare. La maggior parte delle finestre presenti sullo schermo sono delle GrafPort.
Le GrafPort sono definite da un mwhasistema di coordinate. Nel QuickDraw sono definite come numeri a 16 bit e quindi una GrafPort può essere grande al massimo 65535 punti in orizzontale e un egual numero in verticale. I numeri sono elencati col segno quindi vanno da -32.767 a +32.768 in orizzontale e similmente in verticale. Le finestre normalmente sono posizionate a partire dalla posizione (0,0).
Le linee definite da QuickDraw sono delle linee ideali infinitamente sottili. Quando vengono tracciate il sistema traccia la linea "colorando" i punti alla destra e sotto delle coordinate attraversate dalle linee. Questa convenzione di disegno evita errori di mwhgparallasse e riduce i problemi dovuti ad un allineamento non corretto delle linee che generano le figure geometriche base.
Nel sistema Macintosh tutti i punti (mwiapixel) vengono considerati quadrati e con una risoluzione di 72 punti per pollice. Questa convenzione è comoda, dato che nell'industria editoriale una risoluzione standard di stampa è quella di 72 punti per pollice e quindi è facile avere una corrispondenza tra ciò che si vede e ciò che si stampa.
QuickDraw include diverse funzioni per scalare e mappare le immagini.
QuickDraw mantiene molte variabili globali per ogni programma legate alle GrafPort. Questo ha semplificato la realizzazione delle API dato che ogni operazione normalmente veniva indirizzata verso la "porta" corrente. Quando Apple decise di introdurre il mwiwmultitasking nel mwjaMac OS comprese che la soluzione adottata dal QuickDraw era molto limitata e che aggiornarla senza perdere la compatibilità con le precedenti applicazioni sarebbe stata un'impresa ardua. Infatti molte delle limitazioni del multitasking del Mac OS dipendevano da QuickDraw.
Il 20 luglio mwjg2010 Apple ne ha donato il codice sorgente al mwjwComputer History Museum di Mountain Viewcite-ref-1[1].
Note
cite-note-11. ↑ mwmw(mwnamwnqEN) mwngmwnwMacPaint and QuickDraw Source Code, su mwoacomputerhistory.org. mwoqURL consultato il 12 aprile 2012.
Voci correlate